home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
program
/
hw16v22.zip
/
HEX.MST
< prev
next >
Wrap
Text File
|
1996-08-03
|
12KB
|
340 lines
'**************************************************************************
'* Hex Workshop Setup Script
'**************************************************************************
'$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
'$INCLUDE 'msregdb.inc'
''Dialog ID's
CONST DESTPATH = 300
CONST BADPATH = 6400
CONST ASKQUIT = 200
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST APPHELP = 900
CONST ASKFMEXT = 800
CONST ASKVCTOOLS = 2500
''Bitmap ID
CONST LOGO = 1
CONST WS_VISIBLE = &H10000000
CONST WS_BORDER = &H00800000
CONST WS_CLIPCHILDREN = &H02000000
CONST GWL_STYLE = -16
CONST SW_SHOWMAXIMIZED = 3
GLOBAL VERSION$ ''Hex Workshop Version
GLOBAL DEST$ ''Default destination directory.
GLOBAL PATH$ ''Path retrieved from WIN.INI
GLOBAL WINDRIVE$ ''Windows drive
GLOBAL WINDIR$ ''Windows directory
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION GetDir (szPath$) AS STRING
DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%, iShow%) AS INTEGER
DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
INIT:
'' General Init
VERSION$ = "2.20"
CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
SetBitmap CUIDLL$, LOGO
SetTitle ""
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "HEX.INF"
END IF
ReadInfFile szInf$
'' Maximize Window and eliminate title bar
hWnd% = HwndFrame()
rc% = SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
rc% = ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
'' Path Init (get current path if present)
PATH$ = GetIniKeyString("WIN.INI", "Hex Workshop", "Path")
IF LEN(PATH$) = 0 THEN
WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
DEST$ = WINDRIVE$ + ":\HEXWORKS"
ELSE
DEST$ = GetDir(PATH$)
ENDIF
GETPATHDLG:
'' Path to Install Init
SetSymbolValue "EditTextIn", DEST$
SetSymbolValue "EditFocus", "END"
GETPATHAGAIN:
'' Path to Install Entry
sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
DEST$ = GetSymbolValue("EditTextOut")
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DEST$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHAGAIN
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETPATHAGAIN
ELSE
GOSUB ASKQUIT
GOTO GETPATHDLG
END IF
INSTALL:
'' Installation
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
AddSectionFilesToCopyList "AppFiles", SrcDir$, DEST$
CopyFilesInCopyList
'' Program Group
CreateProgmanGroup "Hex Workshop", "", cmoNone
ShowProgmanGroup "Hex Workshop", 1, cmoNone
CreateProgmanItem "Hex Workshop", "Hex Workshop", MakePath(DEST$, "HWORKS16.EXE"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "Base Converter", MakePath(DEST$, "BCONV16.EXE"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "Calculator", MakePath(DEST$, "CALC16.EXE"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "Hex Workshop Help", MakePath(DEST$, "HEXWORKS.HLP"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "Readme", MakePath(DEST$, "README16.TXT"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "How to Order", MakePath(DEST$, "HOWORDER.TXT"), "", cmoOverwrite
CreateProgmanItem "Hex Workshop", "Order Form", MakePath(DEST$, "ORDERFRM.TXT"), "", cmoOverwrite
'' Enter Path and Version in WIN.INI
CreateIniKeyValue "WIN.INI", "Hex Workshop", "Path", MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
CreateIniKeyValue "WIN.INI", "Hex Workshop", "CurrentVersion", VERSION$, cmoOverwrite
'' Register Hex Workshop in Registry
CreateRegKeyValue "HexWorkshop", "HexWorkshop File"
CreateRegKeyValue "HexWorkshop\Shell\Open\Command", MakePath(DEST$, "HWORKS16.EXE %1")
'' Handle File Manager Extension (if it exists, update it, if not, ask the user)
WINDIR$ = GetWindowsDir()
rv% = DoesIniKeyExist(MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop")
IF rv% = 1 THEN
CreateIniKeyValue MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop", MakePath(DEST$, "HWFMGR.DLL"), cmoOverwrite
ELSE
sz$ = UIStartDlg(CUIDLL$, ASKFMEXT, "FRadioDlgProc", 0, "")
UIPop 1
IF sz$ = "CONTINUE" THEN
CreateIniKeyValue MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop", MakePath(DEST$, "HWFMGR.DLL"), cmoOverwrite
END IF
END IF
'' Handle MSVC Tools
bToolsFound% = 0
rv% = DoesFileExist(MakePath(WINDIR$, "MSVC.INI"), femExists)
IF rv% = 1 THEN
sz$ = GetIniKeyString(MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", "ToolNumber")
IF LEN(sz$) > 0 THEN
numTools% = VAL(sz$)
FOR i% = 1 TO numTools%
strTool$ = "ToolPathName" + LTRIM$(STR$(i%))
sz$ = GetIniKeyString(MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$)
rv% = INSTR(sz$, "HWORKS16")
IF rv% > 0 THEN
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
bToolsFound% = 1
ENDIF
rv% = INSTR(sz$, "BCONV16")
IF rv% > 0 THEN
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "BCONV16.EXE"), cmoOverwrite
bToolsFound% = 1
ENDIF
rv% = INSTR(sz$, "CALC16")
IF rv% > 0 THEN
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "CALC16.EXE"), cmoOverwrite
bToolsFound% = 1
ENDIF
NEXT
END IF
IF bToolsFound% = 0 THEN
i% = FAddListItem("CheckItemsIn", "ON")
i% = FAddListItem("CheckItemsIn", "ON")
i% = FAddListItem("CheckItemsIn", "ON")
sz$ = UIStartDlg(CUIDLL$, ASKVCTOOLS, "FCheckDlgProc", 0, "")
UIPop 1
i% = CbGetListItem("CheckItemsOut", 1, hwTool$, 32)
IF hwTool$ = "ON" THEN
numTools% = numTools% + 1
strTool$ = "ToolPathName" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
strTool$ = "ToolMenuText" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "&Hex Workshop", cmoOverwrite
strTool$ = "ToolArguments" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
strTool$ = "ToolInitialDir" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
strTool$ = "ToolAskArguments" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "0", cmoOverwrite
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", "ToolNumber", LTRIM$(STR$(numTools%)), cmoOverwrite
END IF
i% = CbGetListItem("CheckItemsOut", 2, bcTool$, 32)
IF bcTool$ = "ON" THEN
numTools% = numTools% + 1
strTool$ = "ToolPathName" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "BCONV16.EXE"), cmoOverwrite
strTool$ = "ToolMenuText" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "&Base Converter", cmoOverwrite
strTool$ = "ToolArguments" + LTRIM$(STR$(numTools%))
CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
strTool$ = "ToolInitialDir" + LTRIM$(STR$(numTools%